There is a “screen transfer system” in which information on a screen of a server is packetized and distributed in real time from the server to a client terminal connected to the server via a network.
The client terminal receives and displays the screen information on a part or all of a screen area held in the server. Further, information on a user's operation performed at the client terminal is transmitted to the server. This system enables information on a screen of a remote server to be displayed and referred to at a terminal at hand, and hence is expected to be used for various applications, such as, for example, a remote monitoring system.
As methods for configuring a screen transfer system, there are a method in which contents of a whole screen area held in a server are packetized every fixed time period, so as to be distributed to each of client terminals, and a method in which, each time a change is caused in the drawing state in a screen area, only the information representing the difference due to the change is distributed together with the information on the area where the change is caused. In the latter method of distributing the difference, data of only a required portion are generated according to the change in the drawing state. Therefore, as compared with the former method, the latter method has advantages that a network band can be efficiently used, and that the number of drawing frames per unit time can be increased. Therefore, services based on the latter method are generally provided in many cases.
The difference for obtaining a latest drawing state in a screen area is referred to as screen update information. A latest drawing state can be obtained by reflecting the screen update information in the frame buffer in which the last drawing state is stored.
Further, in a screen transfer system, a TCP (Transmission Control Protocol) is generally used as a transmission protocol. The TCP realizes connection type communication between a server and a client terminal, and guarantees the reliability and sequentiality of data transfer by retransmission. In the screen transfer system, only a difference in a drawing state is generally distributed. If the reliability and the sequentiality are not guaranteed in the data transfer, loss and sequence replacement are caused in the data transfer, so that the drawing state of the server and the drawing state of the client terminal are not coincident with each other and thereby the use feeling is worsened. Therefore, the TCP, which guarantees the reliability and the sequentiality in the data transfer, has an advantage in this respect. Further, as compared with the other transmission protocols, such as a UDP (User Datagram Protocol), the TCP has an advantage of easily complying with the security policy of an introduced network. From these reasons, the TCP is used in many screen transfer systems.
In the screen transfer system, it is an important issue to provide a sufficient responsiveness. The responsiveness means the quality of the screen transfer during a time period (response time) from the time when an operation, such as a click operation, is performed at a client terminal to the time when the screen change, which is generated at the server in correspondence with the operation, is reflected at the client terminal. When the responsiveness is not sufficient (response time is large), the user has to wait for the period of response before confirming the result of the operation. This results in adverse effects that the working efficiency is deteriorated and that an operation is erroneously performed.
However, in a screen transfer system using a TCP, when a packet is lost during transfer of packets, the responsiveness may be deteriorated. This is due to the fact that the sequentiality is guaranteed in data transfer based on TCP. When a packet corresponding to update of a screen is lost, the client terminal cannot perform drawing processing based on the received screen update information until retransmission of the lost packet is completed. Therefore, during this period, the drawing is temporarily stopped in the client terminal until the retransmission is completed. As a result, it appears that a delay is caused in the display.